#ifndef TEXTURA_COMPRIMIDA_H_
#define TEXTURA_COMPRIMIDA_H_

#include "textura.h"

class TexturaComprimida : public Textura {
   public:
      /*
       * Carga los texels en una imagen de OpenGL.
       * Si no hay suficiente memoria, reescala los texels utilizando 
       * el metodo Texel::escalado, que ejecuta una interpolacion lineal.
       *
       * Si la operacion falla, se intenta realizar otro escalado.
       * La cantidad de intentos es un parametro opcional.
       *
       * El escalado puede ser configurado, tanto para el ancho como para el
       * alto con los parametros escaladoW y escaldoH.
       *
       * Por cada intento (i) de reduccion, los texels son escaldos:
       *    escaldoH ^ i;
       *    escaladoW ^ i;
       *    
       *    (El simbolo ^ denota la operacion potencia)
       *
       * Notese que debido al escalado, el parametro texels es modificado.
       *
       * Precondicion:
       *    intento > 0
       *    1 > escaladoAncho > 0
       *    1 > escaladoAlto > 0
       * */
      TexturaComprimida(Texels &texels, int intentos = 4, 
            float escaldoW = 0.75, float escaldoH = 0.75);

      virtual ~TexturaComprimida();

};

#endif
